/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
*/
var intersection = function(nums1, nums2) {
  nums1.sort((a, b) => a - b);
  nums2.sort((a, b) => a - b);
  let i = 0, j = 0, map = new Map();
  while(i < nums1.length && j < nums2.length) {
    if(nums1[i] == nums2[j]) {
      if(!map.has(nums1[i])) {
        map.set(nums1[i], nums1[i]);
      }
      i++,j++;
    } else if(nums1[i] > nums2[j]) {
      j++;
    } else {
      i++;
    }
  }
  return [...map.keys()];
};
let nums1 = [1,2,2,1], nums2 = [2,2];
console.log(intersection(nums1, nums2));
nums1 = [4,9,5], nums2 = [9,4,9,8,4];
console.log(intersection(nums1, nums2));
